package com.lam.common.components.easyexcel.imp.model;

import com.lam.common.exception.BaseException;

/**
 * @author lam
 *
 * @param <Ie> 用于接收数据对象的Java类
 * @param <R> 用于保存数据对象的Java类
 */
public interface ImportBody<Ie, R> {
	
	/**
	 * 校验数据是否存在，需要跟数据库交互的验证操作
	 * @param entry
	 * @return
	 */
	default R selectRecord(ImportEntry<Ie, R> entry) {
		return null;
	}
	
	/**
	 * 导入新增数据
	 * @param entry
	 * @return
	 */
	public String insertRecord(ImportEntry<Ie, R> entry);
	
	/**
	 * 导入修改数据
	 * @param entry
	 * @return
	 */
	default String updateRecord(ImportEntry<Ie, R> entry) {
		throw new BaseException("该导入操作不支持修改数据！");
	}
	
	/**
	 * 导入数据不唯一(已存在)提示语，例如：return MessageFormat.format("编码为【{0}】的记录已存在", o.getCode());
	 * @param entry
	 * @return
	 */
	default String notUniqueMsg(ImportEntry<Ie, R> entry) {
		return "记录关键值不唯一";
	}

}
